為什麼要有 Service
因為 Controller 負責所有流程的控制,所以我們希望 Controller 一直保持在很簡潔的狀態,所以我們會盡量把 複雜的計算邏輯及商業邏輯都搬到 Service ,以利重複使用跟管理。
新增 Service
檔案放置目錄:/api/service
// api/service/AuthService.js
module.exports = {
isAdmin: function(user) {
let isAdmin = false;
if (user) {
user.Roles.forEach((role) => {
if(role.authority == 'admin') isAdmin = true;
});
}
return isAdmin;
}
}
Service 如何使用
為了方便使用所以 Sails.js 框架上的 models 跟 service 會自動變定義為全域變(/config/globals.js)。
// api/controllers/AdminController
module.exports = {
isSuperPermission: function (req, res) {
const loginUser = AuthService.getLoginUser(req);
const isAdmin = AuthService.isAdmin(loginUser);
res.ok({isAdmin: isAdmin});
}
}
延伸閱讀